1. Field of the Invention
The present invention relates generally to a Low Density Parity Check (LDPC) code, and in particular, to a method for puncturing an LDPC code.
2. Description of the Related Art
An LDPC code is now attracting much attention as a coding scheme suitable for the 4th generation (4G) mobile communication system because it has higher performance and lower decoding complexity and enables faster parallel processing, compared with a turbo code.
The LDPC code, which was first proposed by Gallager in 1962, is a linear block code in which most of the elements of its parity check matrix H are ‘0’. The LDPC code has not been commercially utilized due to the coding complexity problem, which could not be solved with the technology of that time. However, Mackay and Neal have recently revived the LDPC code, and have proven the high performance of the LDPC code using Gallager's simple probabilistic decoding algorithm.
The LDPC code is defined by a parity check matrix H in which, there are only a few number of elements of ‘1’. The parity check matrix H is a matrix used for determining whether a received signal was normally decoded, and when the product of a coded received signal and the parity check matrix H becomes ‘0’, this signifies that no error has occurred. Therefore, the LDPC code first designs a predetermined parity check matrix such that a value determined by multiplying it by every coded received signal can become ‘0’, and then inversely performs the coding operation carried out by an encoder of a transmitter based on the designed parity check matrix.
The parity check matrix H is randomly generated such that an overlap between two random columns is not greater than 1. The term “weight’ as used herein refers to the number of non-zero elements, i.e., elements of ‘1’, and the phrase “overlap between two columns” refers to the inner product between rows. Therefore, the weights of rows and columns are much less than the code length. For these reasons, a code generated by the parity check matrix H is called a Low Density Parity Check (LDPC) code.
Techniques capable of generating LDPC codes with various coding rates are roughly divided into two methods. A first method, a technique for calculating a code itself, designs an LDPC code such that one large parity check matrix can include therein parity check matrixes having various coding rates. This technique, in making one large parity check matrix, generates parity check matrixes matched to each coding rate included in the large matrix according to their conditions. An LDPC code generated by this technique can estimate its performance for each coding rate and obtain a high performance. However, this technique has difficulty in obtaining various coding rates, and cannot be applied to a Full Incremental Redundancy (Full IR) or a Partial IR for a Hybrid Automatic Repeat reQuest (H-ARQ) system that requires combining technologies between coded bits due to the mismatch between coded bit streams at each coding rate.
A second method, a technique for performing puncturing according to a coding rate after a coding process, allows a transmitter to perform puncturing according to a predetermined pattern and then allows a decoder of a receiver to substitute a log likelihood ratio (LLR) value of ‘0’ or a probability value of ‘0.5’ in a punctured bit node, thereby enabling decoding. The puncturing technique can easily generate a desired coding rate, and can be applied to the H-ARQ technology like the conventional Rate Compatible Punctured Turbo (RCPT), without causing an additional increase in the complexity of the coding process. However, the LDPC code generated by this technique is lower in performance than the LDPC code having the optimal parity check matrix at each coding rate, i.e., the LDPC code generated by the first technique. In order to compensate for performance degradation due to the puncturing of the LDPC code, research is being conducted on various puncturing techniques. However, even the puncturing techniques proposed up to now have room for performance improvement when the limited channel capacity is taken into consideration.